package com.day3;

/**
 * @program: java_base
 * @className: com.day3.Count3Quit
 * @description: 数3退一 1、创建数组模拟圈子 初始化数组
 * @author: 513 王老师(qq:292817678,tel&微信:18688753763)
 * @create: 2020-09-16 14:17
 **/
public class Count3Quit {
    public static void main(String[] args) {
        boolean [] circle = new boolean[500];
        // 默认值是 false
        for (int i = 0; i < circle.length; i ++){
            circle[i] = true; // 表示在圈子中
        }

        // 数组中剩余的个数
        int left = circle.length;
        //计数器
        int count= 0;
        // 循环时候数组的下标
        int index = 0;
        while (left > 1){
            if (circle[index]){
                count ++;
                if (count == 3){
                    circle[index] = false;
                    // 还原计数器
                    count = 0;
                    left --;// 剩余元素的个数减1
                }
            }
            index ++;
            if(index >= circle.length){
                index = 0;
            }
        }
        // 打印最后剩余的元素的位置（在数组中索引值）
        for (int i = 0; i < circle.length; i ++){
            // 5 个人的圈 最后位置是3  500个人的是 435
            if (circle[i]) System.out.println("剩余元素所在的位置：" + i);
        }
    }
}
